package javaFoundation.datatypeoperations.listoperation;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public final class ListOperation {


    public static void traversal(String[] args) {

    }

    public static List<Object> traversalAndFilter(List<Object> unfilter) {
        List<Object> list = new ArrayList<>();

        Iterator<Object> it = unfilter.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }


        return list;
    }

    public static void main(String[] args) {
        List<String> li = new ArrayList<String>();
        li.add("1");
        li.add("2");
        li.add("3");
        li.add("4");

//1.for
//优点：效率最高，遍历快，可以根据自定计数器操作元素
//缺点：不适用所有集合，每次都需要在应用程序中手动强转和额外的获得list.size,还有一个缺点就是遍历过程中不允许删除元素
        for (int i = 0; i < li.size(); i++) {
            System.out.println(li.get(i));
        }


        //2.迭代器
// 优点：迭代器提供了操作元素的方法 可以在遍历中相应地操作元素
//缺点：运行复杂，性能稍差，效率相对其他两种遍历方式较低
        Iterator<String> it = li.iterator();
        while(it.hasNext()){
            System.out.print(it.next());
        }

//3.Foreach
//优点：代码简洁，不易出错。
//缺点：只能做简单的遍历，不能在遍历过程中操作（删除、替换）数据集合。
        for(String s : li) {
            System.out.println(s);
        }

    }



}
